<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
<meta name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

    <meta name="author" content="kissdata">


    <meta name="subtitle" content="人生笔记">


    <meta name="description" content="南邮计算机学院2021毕业生王鹏的介绍，cs软件工程专业">


    <meta name="keywords" content="wangpeng 王鹏 南邮 南京">


<title>Category: Review | 王鹏的小岛</title>



    <link rel="icon" href="/myIcon.ico">




    <!-- stylesheets list from _config.yml -->
    
    <link rel="stylesheet" href="/css/style.css">
    



    <!-- scripts list from _config.yml -->
    
    <script src="/js/script.js"></script>
    
    <script src="/js/tocbot.min.js"></script>
    



    
    
        <!-- MathJax配置，可通过单美元符号书写行内公式等 -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    "HTML-CSS": {
        preferredFont: "TeX",
        availableFonts: ["STIX","TeX"],
        linebreaks: { automatic:true },
        EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
    },
    tex2jax: {
        inlineMath: [ ["$", "$"], ["\\(","\\)"] ],
        processEscapes: true,
        ignoreClass: "tex2jax_ignore|dno",
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    },
    TeX: {
        equationNumbers: { autoNumber: "AMS" },
        noUndefined: { attributes: { mathcolor: "red", mathbackground: "#FFEEEE", mathsize: "90%" } },
        Macros: { href: "{}" }
    },
    messageStyle: "none"
    });
</script>
<!-- 给MathJax元素添加has-jax class -->
<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>
<!-- 通过连接CDN加载MathJax的js代码 -->
<script type="text/javascript" async
        src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
</script>


    


<meta name="generator" content="Hexo 7.0.0"></head>

<body>
    <script>
        // this function is used to check current theme before page loaded.
        (() => {
            const currentTheme = window.localStorage && window.localStorage.getItem('theme') || '';
            const isDark = currentTheme === 'dark';
            const pagebody = document.getElementsByTagName('body')[0]
            if (isDark) {
                pagebody.classList.add('dark-theme');
                // mobile
                document.getElementById("mobile-toggle-theme").innerText = "· Dark"
            } else {
                pagebody.classList.remove('dark-theme');
                // mobile
                document.getElementById("mobile-toggle-theme").innerText = "· Light"
            }
        })();
    </script>

    <div class="wrapper">
        <header>
    <nav class="navbar">
        <div class="container">
            <div class="navbar-header header-logo"><a href="/">侠之大者</a></div>
            <div class="menu navbar-right">
                
                    <a class="menu-item" href="/update/mystate">Career</a>
                
                    <a class="menu-item" href="/category">Legend</a>
                
                    <a class="menu-item" href="/about">Me</a>
                
                <input id="switch_default" type="checkbox" class="switch_default">
                <label for="switch_default" class="toggleBtn"></label>
            </div>
        </div>
    </nav>

    
    <nav class="navbar-mobile" id="nav-mobile">
        <div class="container">
            <div class="navbar-header">
                <div>
                    <a href="/">侠之大者</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
                </div>
                <div class="menu-toggle" onclick="mobileBtn()">&#9776; Menu</div>
            </div>
            <div class="menu" id="mobile-menu">
                
                    <a class="menu-item" href="/update/mystate">Career</a>
                
                    <a class="menu-item" href="/category">Legend</a>
                
                    <a class="menu-item" href="/about">Me</a>
                
            </div>
        </div>
    </nav>

</header>
<script>
    var mobileBtn = function f() {
        var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
        var mobileMenu = document.getElementById("mobile-menu");
        if(toggleMenu.classList.contains("active")){
           toggleMenu.classList.remove("active")
            mobileMenu.classList.remove("active")
        }else{
            toggleMenu.classList.add("active")
            mobileMenu.classList.add("active")
        }
    }
</script>
            <div class="main">
                <div class="container">
    <article class="post-wrap page">
        
        <h2 class="post-title">摘抄 | 大数据码农的职业发展</h2>
        
        <section class="post-content">
            <p><em><font color=yellow>人生是一场解决问题的旅程，不要让焦虑影响你的判断。</font></em></p>
<p align="right">—— 题记</p>

<h2 id="前-言"><a href="#前-言" class="headerlink" title="前 言"></a>前 言</h2><p>《大数据平台基础架构指南》最后一章的笔记，本来是为了找 LogStash资料发现他了，它第5章【数据交换服务场景的方案】里有关于 <code>以日志或消息队列为主要业务对象的系统</code>， 介绍了Flume、<code>Logstash</code>、Camus 3种，其实只有几段概念话，</p>
<figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">LogStash 是套件 ELK 的一个组件，负责日志的采集和转换</span><br><span class="line">LogStash 重点放在数据的转换处理上</span><br><span class="line">LogStash 基于 Ruby语言实现，对Java程序员学习有门槛</span><br></pre></td></tr></table></figure>

<p>其他都是介绍蘑菇街（快过去式了）程序的设计，没什么价值，后面我又不用了。</p>
<p>本来以为我的大数据工作是这方面，发现前面的知识暂时与我现阶段的事情无关，解决不了我日常工作的问题，反而最后一章谈了大数据工程师的成长和发展问题。记录一下。</p>
<hr>
<center><font size=5>第10章 &ensp; 大数据码农的职业发展</font></center>
<p align="right">刘旭晖·著（2018.7出版）</p>



<h2 id="一、反面视觉看大数据工作"><a href="#一、反面视觉看大数据工作" class="headerlink" title="一、反面视觉看大数据工作"></a>一、反面视觉看大数据工作</h2><p>谈如何成为优秀的码农（理解产品、钻研技术、能搭架构、能解BUG），换了一个反面的角度，谈了成为糟糕的开发工程师的表现：</p>
<ul>
<li><p>喜欢问粗犷有犀利的 <code>小白</code> 问题，比如”大数据如何入门，看哪些书“，而且内心已经有了预期答案（书 - 网课 - 搭建案例 - 面试题清单 - 市场资薪）。其实是不知道自己喜欢什么</p>
</li>
<li><p>没有具备良好的学习总结和推理分析能力。遇到问题不看文档不分析日志不画流程图，到处去社交群问，然后等答案。另外是热衷于那种解决偏底层的工作环境问题，其实没有意义，以后会被AWS等各类平台的标准化服务替代。</p>
</li>
</ul>
<blockquote>
<p>他们也搭过集群，写过ETL程序，遇上过”特别复杂“的问题，比如集群莫名其妙起不来了之类的，百度一下专家推荐的配置参数或者搜索一下出错信息就搞定了，还经常写点”我司数据平台的踩坑经验和实战的分享“，你就说牛不牛吧！</p>
</blockquote>
<p>  这种说的就是我啊哈哈，比如配置goCV，其实docker里有更方便的。还有python环境有conda</p>
<ul>
<li><p>不看官网FAQ和性能调优指南，不看JIRA，喜欢随便搜一些不知道谁写的搭建笔记和不起眼的博文。因为没时间看和讨厌英文。</p>
<blockquote>
<p>玩别人早就玩剩下的东西。不接触第一手的资讯，筛选过时或错误信息的代价可能更高。</p>
</blockquote>
</li>
<li><p>什么技术热门就学什么，把将来的工作和实时计算挂上钩。都想机器学习和人工智能，看的都是门槛很低的内容。</p>
<blockquote>
<p>即使是大学中相关实验室的项目，通常也偏理论研究，和现实问题相距甚远，所以不少同学的实际动手能力堪忧，而能靠参与开源项目进阶的同学更是凤毛麟角了，多数在中小公司实习的同学，也就是用开源组件搭一个ETL框架、写一下SQL、做做日志统计之类的工作。</p>
</blockquote>
</li>
<li><p>嫌业务烦，嫌重复劳动，嫌环境不行，想着换方向换地方。</p>
</li>
<li><p>不梳理清楚问题的核心矛盾，喜欢把开源代码的理解写成文档，阅读和熟悉代码过犹不及。一是流程理解集中在微观层面，缺乏抽象归纳（背后的思想），二是被日常业务出错、集群不稳定方面的工作没有帮助（知道代码逻辑是这样的，认为这种场景就应该是这种现象，不想着改良）。</p>
<blockquote>
<p>一方面，你可能迷失在一些无关痛痒的局部细节上；另一方面，你可能忽视了真正需要尽早找出答案的问题。实际上，这也是一种用战术上的勤快来掩盖战略上的懒惰的行为表现。</p>
</blockquote>
</li>
<li><p>排查问题，迷之问题的迷之解决方式。只会调参改大内存掩盖问题本质。要想复现问题和改进日志。</p>
</li>
<li><p>没有形成有效的长期知识记忆，勤奋好学但是回头既忘。脑海里只留下了人云亦云的皮毛概念和广告用语（比xxx 好，比yyy快）。</p>
<blockquote>
<p>花了很多时间精力去拉新，但是在留存环节，效果却惨淡。</p>
<p>如果你的学习笔记只是各种知识点的<strong>摘要文档</strong>，缺乏整理，没有分享的价值，那么这种类型的笔记对于你自己的价值，可能也远低于你的想象。</p>
</blockquote>
</li>
</ul>
<h2 id="二、职业选择"><a href="#二、职业选择" class="headerlink" title="二、职业选择"></a>二、职业选择</h2><p>提前思考孩子的问题，不然会木已成舟。</p>
<ul>
<li><p>焦虑不是中年人的特权，只不过焦虑的人来到了中年。要在年轻的时候培养面对烦恼的表现形式。</p>
</li>
<li><p>焦虑是因为做事没有选择，具体那些事（升学、恋爱、钱途）都是表层。没有人喜欢被约束。</p>
<blockquote>
<p>采集生活到农耕生活，社会整体生产效率提高了，也造成了个人与土地的绑定，失去了选择生活方式的自由。</p>
</blockquote>
<p>有点像在说买房的问题。最近看到 <code>采集</code> 这个词太多了，还是换成 <code>爬取</code> 好点，本来就不是自己的，采集倒好像就应该是自己的。</p>
</li>
<li><p>选择自由的程度</p>
<ul>
<li><p>控制对钱的欲望，解决自己的问题要赚多少钱，不是想赚更多的钱解决本来没有的问题。</p>
</li>
<li><p>释放一下，尝试和体验一下非主流生活（放弃一段时间标配的生活）</p>
</li>
<li><p>很难选择时干脆不选，不要担心哪一项不选可能带来的后果（比如考虑哪门语言好的人其实是在担心自己不学会不会被淘汰）</p>
</li>
<li><p>自律，制定计划，从旁观者的角度看自己的行为。做计划其实也是焦虑，不过这样可以逼迫你权衡收益和代价，可以让你集中在执行层面，而不是停步在纠结和担忧的环节。</p>
<blockquote>
<p>为什么穷人看起来总是在做一些饮鸠止渴的行为？因为当贫穷成为一种心理压力的时候，它就占据了大部分的思维带宽，进而导致你的理性判断能力下降。</p>
<p>对一件事情的结果本身的焦虑占据了我们的思维带宽，导致我们没有足够的精力去思考如何更好的解决问题。</p>
</blockquote>
<p>一旦陷入很难拉离这种状态，姐姐就是做不到，经常纠结孩子去哪里读，马上开学了还没考虑好，最后还是随大流。<strong>只有做计划能摆脱这种思维困境，头脑不用一直在想这些事。</strong></p>
</li>
<li><p>不后悔。面对客观现实，不仅仅是悲惨结局的不后悔，还有收获的不后悔（觉得还能得到更多）。也要给自己安排好退路。</p>
</li>
</ul>
</li>
</ul>
<h2 id="三、案例"><a href="#三、案例" class="headerlink" title="三、案例"></a>三、案例</h2><ol>
<li>旅行计划。</li>
</ol>
<p>不要担心花钱，一年没有一次的活动。</p>
<p>旅行伙伴，女性。”对人文的感受大于对风景的追求“，去哪儿不重要，只要脱离日常的生活环境。</p>
<p>行程安排不要太细。目标不是写游记。</p>
<ol start="2">
<li>找工作。</li>
</ol>
<p>（选）选擅长的工作，不是着眼热门的工作</p>
<p>（做）注重方法论的培养，不要企图找稳定工作或者永远吃香的技能，工作内容总会更换。</p>
<p>（记）一是记现在问题的解法，二是记未来工作的需要的知识。不要安于现状，想想几年后你在哪，你会做什么，设定好学习目标。这是和普通工人的区别。</p>
<p>（备）接受最坏的结果。早做打算。但不能学我老爸总是想走最坏的路，只因为最坏的打算最稳定~~~</p>

        </section>
    </article>
</div>

            </div>
            <footer id="footer" class="footer">
    <div class="copyright">
        <span>187-9597-5517 &nbsp; 王鹏 @ <a href="https://cs.njupt.edu.cn/" target="_blank">njupt</a</span>
    </div>
</footer>

    </div>
</body>

</html>